<?php

    class CrearPartidoController
    {
        var $equipos;
        var $partido;
        var $errs;

        function CrearPartidoController()
        {
            // Solo admins
            Session::onlyAdmins();

            $this->equipos = EquiposDAO::getAll();
            $this->partido = new Partido();
            $this->partido->esClasificatorio = 'false';
            $this->errs = array();

            if ($_SERVER["REQUEST_METHOD"] == "POST")
            {
                $this->parseForm();
                if (!$this->validate()) return;

                // Agregar


                if (PartidosLogic::add($this->partido))
                {
                    header('Location: index.php?action=partidos');
                }
                else
                {
                    //$this->errs[] = "No se pudo agregar el partido. Recuerde que si es clasificatorio no puede tener resultado de empate.";
                    $this->errs[] = "No se pudo agregar el partido. La fecha debe ser hoy o en el futuro.";
                    return;
                }
                    
            }
        }


        function parseForm()
        {
            $this->partido->idEquipoLocal = $_POST['idEquipoLocal'];
            $this->partido->idEquipoVisita = $_POST['idEquipoVisita'];
            $this->partido->factorLocal = $_POST['factorLocal'];
            $this->partido->factorVisita = $_POST['factorVisita'];
            $this->partido->factorEmpate = $_POST['factorEmpate'];
            $this->partido->fecha = $_POST['fecha'];
            //$this->partido->estado = $_POST['estado'];
            //$this->partido->resultado = $_POST['resultado'];
            $this->partido->esClasificatorio = Form::getPost('esClasificatorio');

            if ($this->partido->esClasificatorio === "on")
                $this->partido->esClasificatorio = 'true';
            else
                $this->partido->esClasificatorio = 'false';

        }

        function validate()
        {

            if ($this->partido->idEquipoLocal == -1)
                    $this->errs[] = "Debe especificarse el equipo local";

            if ($this->partido->idEquipoVisita == -1)
                    $this->errs[] = "Debe especificarse el equipo visita";
            
            if ($this->partido->idEquipoLocal == $this->partido->idEquipoVisita)
                    $this->errs[] = "Los equipos deben ser distintos";

            if (!is_numeric($this->partido->factorLocal))
                    $this->errs[] = "El factor local debe ser un numero";

            if (!is_numeric($this->partido->factorVisita))
                    $this->errs[] = "El factor visita debe ser un numero";

            if (!is_numeric($this->partido->factorEmpate))
                    $this->errs[] = "El factor empate debe ser un numero";

            if ($this->partido->factorLocal < 1)
                    $this->errs[] = "El factor local debe ser mayor que 1";

            if ($this->partido->factorVisita < 1)
                    $this->errs[] = "El factor visita debe ser mayor que 1";

            if ($this->partido->factorEmpate < 1)
                    $this->errs[] = "El factor empate debe ser mayor que 1";

//            if ($this->partido->estado == 5 &&  $this->partido->resultado == -1)
//                    $this->errs[] = "El resultado debe especificarse si el partido ya finalizo";


            return (sizeof($this->errs) == 0);
        }
    }

?>